package com.excilys.gwtfirst.domain.service.api;

import org.springframework.dao.DataAccessException;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import com.excilys.gwtfirst.domain.service.api.security.CustomUserDetails;

public interface AuthenticationService extends UserDetailsService {

	/**
	 * Retourne un utilisateur à partir de son login.
	 * 
	 * @param login Le login de l'utilisateur
	 * @return Le User ayant ce login, une exception s'il n'existe pas
	 * @exception NonExistantUserException si l'utilisateur n'existe pas
	 */
	@Override
	public CustomUserDetails loadUserByUsername(String username) //
			throws UsernameNotFoundException, DataAccessException;

}
